Apache Tika একটি ওপেন সোর্স টুল যা বিভিন্ন ধরণের ফাইল থেকে টেক্সট ও মেটাডাটা এক্সট্রাক্ট করতে সাহায্য করে। যদি আপনার নিজস্ব কোনো ফাইল ফরম্যাট থাকে যা Tika ডিফল্ট পার্সার সাপোর্ট করে না, তখন Custom Parser ইমপ্লিমেন্ট করা হয়।
Custom Tika Parser কী?
Custom Tika Parser হলো এমন একটি পার্সার যা নির্দিষ্ট ফাইল টাইপ বা ফরম্যাট থেকে ডেটা এক্সট্রাক্ট করার জন্য তৈরি করা হয়। Tika Framework-এর মাধ্যমে আপনি একটি নতুন পার্সার তৈরি করে Tika Parser API তে ইন্টিগ্রেট করতে পারবেন।
Custom Tika Parser তৈরির ধাপ
১. Maven ডিপেনডেন্সি অ্যাড করা
প্রথমে আপনার Maven প্রজেক্টে Tika এর ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.9.0</version>
</dependency>
২. Custom Parser ক্লাস তৈরি
একটি নতুন ক্লাস তৈরি করে AbstractParser এক্সটেন্ড করতে হবে এবং পার্সিং লজিক ইমপ্লিমেন্ট করতে হবে।
উদাহরণ: একটি .custom ফাইল থেকে টেক্সট এক্সট্রাকশন
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AbstractParser;
import org.apache.tika.parser.ParseContext;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
public class CustomParser extends AbstractParser {
private static final long serialVersionUID = 1L;
// কাস্টম ফাইলের MIME টাইপ সেট করুন
private static final String MIME_TYPE = "application/x-custom";
@Override
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
throws IOException, SAXException, TikaException {
// কাস্টম ফাইল প্রসেসিং লজিক
byte[] data = stream.readAllBytes();
String content = new String(data, StandardCharsets.UTF_8);
// Metadata সেট করুন
metadata.set(Metadata.CONTENT_TYPE, MIME_TYPE);
metadata.set("Custom-Header", "Custom Parser Header");
// Content পাঠান
handler.characters(content.toCharArray(), 0, content.length());
}
}
৩. Tika Config ফাইল তৈরি করা
Custom Parser Tika-তে ইন্টিগ্রেট করতে একটি tika-config.xml ফাইল তৈরি করতে হবে।
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<parsers>
<parser class="com.example.CustomParser">
<mime>application/x-custom</mime>
</parser>
</parsers>
</properties>
৪. Custom Parser টেস্ট করা
একটি main() মেথড তৈরি করে Custom Parser টেস্ট করা যায়।
import org.apache.tika.Tika;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.metadata.Metadata;
import java.io.File;
import java.io.FileInputStream;
public class CustomParserTest {
public static void main(String[] args) throws Exception {
// Custom Tika Config লোড করুন
TikaConfig tikaConfig = new TikaConfig("tika-config.xml");
Tika tika = new Tika(tikaConfig);
File file = new File("example.custom");
// Custom ফাইল পার্সিং
Metadata metadata = new Metadata();
String content = tika.parseToString(new FileInputStream(file), metadata);
// আউটপুট দেখানো
System.out.println("Extracted Content: " + content);
System.out.println("Metadata: " + metadata);
}
}
ব্যাখ্যা
১. CustomParser Class: এটি AbstractParser এক্সটেন্ড করে এবং parse() মেথডের মাধ্যমে ফাইলের কন্টেন্ট প্রসেস করা হয়।
২. Metadata: ফাইলের মেটাডাটা যেমন Content-Type এবং Custom-Header সেট করা হয়েছে।
৩. tika-config.xml: এটি Tika Framework-এ Custom Parser যোগ করার জন্য ব্যবহার করা হয়।
৪. Testing: একটি .custom ফাইল লোড করে তা থেকে টেক্সট এক্সট্রাকশন ও মেটাডাটা চেক করা হয়েছে।
আউটপুট
Input File (example.custom):
Hello, this is a test content from a custom file.
Output:
Extracted Content: Hello, this is a test content from a custom file.
Metadata:
Content-Type: application/x-custom
Custom-Header: Custom Parser Header
উপসংহার
Custom Tika Parser তৈরি করার মাধ্যমে আপনি আপনার প্রজেক্টে নতুন ফাইল ফরম্যাট সাপোর্ট করতে পারবেন। এটি আপনার অ্যাপ্লিকেশনের জন্য ফাইল প্রসেসিংকে আরো কাস্টমাইজড ও কার্যকরী করে তোলে।